#pragma once

#include <QObject>

class ExGameTimer : public QObject
{
	Q_OBJECT

public:
	ExGameTimer(QObject *parent);
	~ExGameTimer();

	float TotalTime() const;		// 总游戏时间
	float DeltaTime() const;		// 帧间隔时间

	void Reset();               // 在消息循环之前调用
	void Start();               // 在取消暂停的时候调用
	void Stop();                // 在暂停的时候调用
	void Tick();                // 在每一帧的时候调用

private:

	double SecondsPerCount;
	double DeltaSeconds;

	__int64 BaseTime;
	__int64 PausedTime;
	__int64 StopTime;
	__int64 PrevTime;
	__int64 CurrTime;

	bool IsStopped;
};
